package com.numberone.controller;


import com.numberone.entity.Check;
import com.numberone.entity.ExcelData;
import com.numberone.service.ICheckService;
import com.numberone.tools.ExportExcelUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author zzc
 * @since 2019-04-12
 */
@Controller
@RequestMapping("/check")
public class CheckController {

    @Autowired
    private ICheckService checkService;

    /**
     * 插入信息，采集数据
     * @return
     */
    @RequestMapping(value = "insert.shtml", method = RequestMethod.POST, produces = "text/html; charset=utf-8")
    @ResponseBody
    public String formSucc(Check checkFormMap) {
        try {
            checkFormMap.setId( UUID.randomUUID().toString());
            SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
            checkFormMap.setUpdateTime(sdf.format(new Date()));
            //checkFormMap.setDatafrom("网页采集");
            checkFormMap.setDatafrom("微信采集");
            checkService.addCheck(checkFormMap);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "提交成功";
    }

    @DeleteMapping("delete{id}")
    @ResponseBody
    public int delete(@PathVariable("id") String id){
        checkService.delete(id);
        return 1;

    }

    /**
     * 修改信息
     * @return
     */
    @RequestMapping(value = "update.shtml", method = RequestMethod.POST, produces = "text/html; charset=utf-8")
    @ResponseBody
    public String insert(Check checkFormMap) {
            try {
            /*SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
            checkFormMap.setUpdateTime(sdf.format(new Date()));*/
            checkService.update(checkFormMap);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "修改成功";
    }

    //通过id找check实体信息
    @RequestMapping("findCheckById{datainfo}")
    @ResponseBody
    public Check findCheckById(@PathVariable("datainfo") String datainfo, HttpSession session){
        //每一次点击都会换一个值
        session.setAttribute("datainfo",datainfo);

        Check check=checkService.findCheckById(datainfo);

        return  check;
    }

    @RequestMapping("/excelTransfer.html")
    public void test2(HttpServletResponse response){
        List<Check> list = checkService.list();
        ExcelData data = new ExcelData();
        data.setName("数据统计");
        ArrayList<String> titles = new ArrayList<>();
        titles.add("姓名");
        titles.add("年龄");
        titles.add("性别");
        titles.add("民族");
        titles.add("文化程度");
        titles.add("职业");
        titles.add("居住地");
        titles.add("家族中人是否有脑血管病的患病史");
        titles.add("本人是否有脑卒中（脑缺血/脑出血）病史");
        titles.add("本人是否有确诊过的短暂性脑缺血发作(TIA)病史");
        titles.add("是否有过一过性黑朦、视力丧失、视野缺损或复视");
        titles.add("是否有过一过性失语、识读或失写");
        titles.add("是否有过一过性单侧或双侧肢体无力、感觉异常");
        titles.add("是否有过一过性听力下降、瘫痪、意识障碍或猝倒发作");
        titles.add("高血压病");
        titles.add("收缩压");
        titles.add("舒张压");
        titles.add("是否正在服用降压药物");
        titles.add("糖尿病");
        titles.add("空腹血糖");
        titles.add("餐后2小时血糖");
        titles.add("随机血糖");
        titles.add("是否有房颤或瓣膜性心脏病");
        titles.add("每周运动≧3次，每次中等强度及以上运动≧30分钟，或从事中、重度体力劳动");
        titles.add("吸烟指数");
        titles.add("饮酒指数");
        titles.add("体重指数（BMI）");
        titles.add("总胆固醇");
        titles.add("甘油三脂");
        titles.add("低密度脂蛋白");
        titles.add("高密度脂蛋白");
        titles.add("血清同型半胱氨酸");
        titles.add("颈动脉是否有斑块或狭窄");
        titles.add("颈动脉血管狭窄率");
        titles.add("是否有颅内血管狭窄");
        titles.add("颅内血管狭窄率");
        titles.add("头颈血管CTA检查是否有斑块或狭窄");
        titles.add("颈部动脉狭窄率");
        titles.add("手机");
        titles.add("Email");
        titles.add("其他");
        titles.add("数据来源");
        data.setTitles(titles);

        ArrayList<List<Object>> rows = new ArrayList<>();
        for (Check userInfo : list) {
            ArrayList<Object> row = new ArrayList<>();
            row.add(userInfo.getName());
            row.add(userInfo.getAge());
            row.add(userInfo.getSex());
            row.add(userInfo.getMz());
            row.add(userInfo.getXl());
            row.add(userInfo.getJob());
            row.add(userInfo.getAddress());
            row.add(userInfo.getNxgbhistory());
            row.add(userInfo.getNzbhistory());
            row.add(userInfo.getHeartRadio());
            row.add(userInfo.getHm());
            row.add(userInfo.getSy());
            row.add(userInfo.getWl());
            row.add(userInfo.getXj());
            row.add(userInfo.getGxy());
            row.add(userInfo.getPressMed());
            row.add(userInfo.getSzy());
            row.add(userInfo.getPressMedRadio());
            row.add(userInfo.getTnb());
            row.add(userInfo.getHeartMedRadio());
            row.add(userInfo.getBloodSugar2h());
            row.add(userInfo.getSjxt());
            row.add(userInfo.getFc());
            row.add(userInfo.getYd());
            row.add(userInfo.getSmoke());
            row.add(userInfo.getDrink());
            row.add(userInfo.getBmi());
            row.add(userInfo.getZdgc());
            row.add(userInfo.getGysz());
            row.add(userInfo.getDmdzdb());
            row.add(userInfo.getGmdzdb());
            row.add(userInfo.getTxbgas());
            row.add(userInfo.getJdmbkCheck());
            row.add(userInfo.getJdmxzl());
            row.add(userInfo.getLnxgxzRadio());
            row.add(userInfo.getLnxgxzl());
            row.add(userInfo.getJdmctabkCheck());
            row.add(userInfo.getJdmCTAxzl());
            row.add(userInfo.getPhone());
            row.add(userInfo.getEmail());
            row.add(userInfo.getOther());
            row.add(userInfo.getDatafrom());
            rows.add(row);
        }
        data.setRows(rows);
        try{
            ExportExcelUtils.exportExcel(response,"卒中筛查",data);
        }catch (Exception e){
            e.printStackTrace();
        }
    }


}
